# -*- coding: utf-8 -*-
"""
Created on Mon Aug 14 19:28:05 2023

@author: skunk69
"""

import json

chinese_name = u'人际信任量表'
english_name = 'Interpersonal Trust Scale'
abbreviation = 'ITS'
category = u'家庭与人际关系量表'

outline = u"""人际信任量表(Interpersonal Trust Scales，简称ITS)，由美国康涅狄格大学心理学系的教授Rotter J.B.在1976年编制。本量表用于测查被测者对他人的行为、承诺或（口头和书面）陈述之可靠性的估计，人际信任是个体将他人的言词、承诺以及口头或书面的陈述认为可靠的一种概括化的期望。高信任者可能较少撒谎、作弊或偷窃。他们可能会更多地给他人第二次机会以及尊重他人的正当权利。高信任者可能较少出现不快乐、与他人发生冲突或者环境适应不良，他们通常更讨人喜欢，并且不论是高信任者还是低信任者都愿把他们当作朋友(Rotter, 1977)。"""

instruction = u"""使用以下标准表明你对下列每一陈述同意或不同意的程度：完全同意，部分同意，同意与不同意相等，部分不同意，完全不同意。"""

with open('ITS.txt','r',encoding='utf-8') as f:
    lines = f.readlines()
    f.close()

items = {}
for key,line in enumerate(lines):
    _,value = line.strip().split('）',maxsplit=1)
    items[key+1] = value.strip()

reverse_items = [1,2,3,4,5,7,9,10,11,13,15,19,24]
scales = [u'特殊信任',u'普遍信任']
scales_items = []
factors = []
factors_scales = []
rating = [u'完全同意',u'部分同意',u'同意与不同意相等',u'部分不同意',u'完全不同意']
score_rules = list(range(1,6))

contents = {
    'instruction':instruction,
    'items':items,
    'reverse_items':reverse_items,
    'scales':scales,
    'scales_items':scales_items,
    'factors':factors,
    'factors_scales':factors_scales,
    'rating':rating,
    'score_rules':score_rules       
    }

implementation = u"""《人际信任量表》属于一个自评量表。"""

reliability = u"""人际信任量表的分半信度为0.76，其中男性为0.77，女性为0.75。平均间隔7个月的重测信度为0.56（P<0.01），间隔3个月的重测信度为0.68。"""
validity = u"""有关结构效度的研究提示该量表的得分反映了受测者的部分人口学特点（家庭背景、社会经济地位、宗教信仰等），但没有性别差异。
因子分析发现该量表有两个因子，分别是特殊信任因子（对同伴或其他家庭成员的信任）和普遍信任因子（对无直接关系者的信任），也有研究证实该量表有三个因子，分别是政治信任、父辈信任和对陌生人的信任。政治信任因子反映个体对政坛和媒体的可靠性的信任，父辈信任因子测查对于对自身有利的权威者个体所感知到的信赖感，对陌生人的信任因子测量对自身可能接触到的陌生人的信任程度。
由于选择项目时避免了与其他量表显著相关的条目，故量表的区分效度较好。"""
measurements = {'reliability':reliability,'validity':validity}

interpretation = u"""首先将反向条目反向计分，所有25个条目得分之和即为该量表的总分，反映了被试人际信任的总体状况，得分高者人际信任度也高。
人际信任量表测查内容包括各种处境下的人际信任，涉及不同社会角色（包括父母、推销员、审判员、一般人群、政治人物以及新闻媒体）。"""

applications = u"""大量研究（包括实验室研究、问卷调查、自我报告及同伴评定等）证实了人际信任量表可以较好地调查被试的人际信任水平。"""

this_scale = {
    'chinese_name':chinese_name,
    'english_name':english_name,
    'abbreviation':abbreviation,
    'category':category,
    'outline':outline,
    'contents':contents,
    'implementation':implementation,
    'measurements':measurements,
    'interpretation':interpretation,
    'applications':applications    
    }

with open(abbreviation+'.json','w+',encoding='utf-8') as f:
    json.dump(this_scale,f,indent=2,ensure_ascii=False)